﻿using RockBus.Messages.Interfaces;

namespace RockBus.Routing.Interfaces
{
    public interface ICorrelationManager
    {
        bool TryStartInboundCorrelation(IMessageContext messageContext);

        bool TryStartOutboundCorrelation(IMessageContext messageContext);

        bool TrySatisfyInboundCorrelation(IMessageContext messageContext, out IMessageContext correlatedMessageContext);

        bool TrySatisfyOutboundCorrelation(IMessageContext messageContext, out IMessageContext correlatedMessageContext);
    }
}